home *** CD-ROM | disk | FTP | other *** search
/ Visual Cafe 3 / Visual Cafe 3.ISO / Vcafe / JFC.bin / OrganicInternalFrameUI.java < prev    next >
Text File  |  1998-06-30  |  3KB  |  110 lines

  1. /*
  2.  * @(#)OrganicInternalFrameUI.java    1.6 98/02/06
  3.  * 
  4.  * Copyright (c) 1997 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  */
  20.  
  21. package com.sun.java.swing.plaf.organic;
  22.  
  23. import java.awt.*;
  24. import java.awt.event.*;
  25. import com.sun.java.swing.*;
  26. import com.sun.java.swing.border.*;
  27. import com.sun.java.swing.plaf.basic.*;
  28. import java.util.EventListener;
  29. import java.beans.PropertyChangeListener;
  30. import java.beans.PropertyChangeEvent;
  31. import java.beans.PropertyVetoException;
  32. import com.sun.java.swing.plaf.*;
  33. import com.sun.java.swing.plaf.*;
  34. import java.io.Serializable;
  35.  
  36. /**
  37.  * Organic implementation of JInternalFrame.  
  38.  *
  39.  * @version 1.6 02/06/98
  40.  * @author Steve Wilson
  41.  */
  42. public class OrganicInternalFrameUI extends BasicInternalFrameUI {
  43.  
  44.   private OrganicInternalFrameTitlePane titlePane;
  45.  
  46.   private PropertyChangeListener paletteListener;
  47.   
  48.   protected static String IS_PALETTE = "JInternalFrame.isPalette";
  49.  
  50.   public OrganicInternalFrameUI(JInternalFrame b)   {
  51.     super(b);
  52.   }
  53.  
  54.   public static ComponentUI createUI(JComponent c)    {
  55.       return new OrganicInternalFrameUI( (JInternalFrame) c);
  56.   }
  57.  
  58.   public void installUI(JComponent c) { 
  59.     frame = (JInternalFrame)c;
  60.  
  61.     paletteListener = new PaletteListener();
  62.     c.addPropertyChangeListener(paletteListener);
  63.  
  64.     super.installUI(c);
  65.  
  66.     Object paletteProp = c.getClientProperty( IS_PALETTE );
  67.     if ( paletteProp != null ) {
  68.     setPalette( ((Boolean)paletteProp).booleanValue() );
  69.     }
  70.   }
  71.   
  72.   public void uninstallUI(JComponent c) {                  
  73.       c.removePropertyChangeListener(paletteListener);
  74.       super.uninstallUI(c);
  75.   } 
  76.     
  77.   protected JComponent createNorthPane(JInternalFrame w) {
  78.     titlePane = new OrganicInternalFrameTitlePane(w);
  79.     return titlePane;
  80.   }
  81.  
  82.   public void setPalette(boolean isPalette) {
  83.     if (isPalette) {
  84.         LookAndFeel.installBorder(frame, "InternalFrame.paletteBorder");
  85.     //    frame.setBorder(organicPaletteBorder);
  86.     } else {
  87.         LookAndFeel.installBorder(frame, "InternalFrame.border");
  88.     //   frame.setBorder(organicFrameBorder);
  89.     }
  90.     titlePane.setPalette(isPalette);
  91.  
  92.   }
  93.  
  94.   class PaletteListener implements PropertyChangeListener, Serializable {
  95.     public void propertyChange(PropertyChangeEvent e) {
  96.     String name = e.getPropertyName();
  97.     if ( name.equals( IS_PALETTE ) ) {
  98.         if ( e.getNewValue() != null ) {
  99.             setPalette( ((Boolean)e.getNewValue()).booleanValue() );
  100.         }
  101.         else {
  102.         setPalette( false );
  103.         }
  104.         }
  105.     }
  106.   } // end class PaletteListener
  107.  
  108. }
  109.  
  110.